home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / io / File.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  4.6 KB  |  280 lines

  1. package java.io;
  2.  
  3. import java.util.Vector;
  4.  
  5. public class File implements Serializable {
  6.    private String path;
  7.    public static final String separator = System.getProperty("file.separator");
  8.    public static final char separatorChar;
  9.    public static final String pathSeparator;
  10.    public static final char pathSeparatorChar;
  11.    private static final long serialVersionUID = 301077366599181567L;
  12.  
  13.    public File(String var1) {
  14.       if (var1 == null) {
  15.          throw new NullPointerException();
  16.       } else {
  17.          this.path = var1;
  18.       }
  19.    }
  20.  
  21.    public File(String var1, String var2) {
  22.       if (var2 == null) {
  23.          throw new NullPointerException();
  24.       } else if (var1 != null) {
  25.          if (var1.endsWith(separator)) {
  26.             this.path = var1 + var2;
  27.          } else {
  28.             this.path = var1 + separator + var2;
  29.          }
  30.       } else {
  31.          this.path = var2;
  32.       }
  33.    }
  34.  
  35.    public File(File var1, String var2) {
  36.       this(var1.getPath(), var2);
  37.    }
  38.  
  39.    public String getName() {
  40.       int var1 = this.path.lastIndexOf(separatorChar);
  41.       return var1 < 0 ? this.path : this.path.substring(var1 + 1);
  42.    }
  43.  
  44.    public String getPath() {
  45.       return this.path;
  46.    }
  47.  
  48.    public String getAbsolutePath() {
  49.       return this.isAbsolute() ? this.path : System.getProperty("user.dir") + separator + this.path;
  50.    }
  51.  
  52.    public String getCanonicalPath() throws IOException {
  53.       System.getSecurityManager().checkRead(this.path);
  54.       return this.isAbsolute() ? this.canonPath(this.path) : this.canonPath(System.getProperty("user.dir") + separator + this.path);
  55.    }
  56.  
  57.    public String getParent() {
  58.       int var1 = this.path.lastIndexOf(separatorChar);
  59.       if (var1 < 0) {
  60.          return null;
  61.       } else if (this.isAbsolute() && this.path.indexOf(separatorChar) == var1) {
  62.          return var1 < this.path.length() - 1 ? this.path.substring(0, var1 + 1) : null;
  63.       } else {
  64.          return this.path.substring(0, var1);
  65.       }
  66.    }
  67.  
  68.    private native boolean exists0();
  69.  
  70.    private native boolean canWrite0();
  71.  
  72.    private native boolean canRead0();
  73.  
  74.    private native boolean isFile0();
  75.  
  76.    private native boolean isDirectory0();
  77.  
  78.    private native long lastModified0();
  79.  
  80.    private native long length0();
  81.  
  82.    private native boolean mkdir0();
  83.  
  84.    private native boolean renameTo0(File var1);
  85.  
  86.    private native boolean delete0();
  87.  
  88.    private native boolean rmdir0();
  89.  
  90.    private native String[] list0();
  91.  
  92.    private native String canonPath(String var1) throws IOException;
  93.  
  94.    public boolean exists() {
  95.       SecurityManager var1 = System.getSecurityManager();
  96.       if (var1 != null) {
  97.          var1.checkRead(this.path);
  98.       }
  99.  
  100.       return this.exists0();
  101.    }
  102.  
  103.    public boolean canWrite() {
  104.       SecurityManager var1 = System.getSecurityManager();
  105.       if (var1 != null) {
  106.          var1.checkWrite(this.path);
  107.       }
  108.  
  109.       return this.canWrite0();
  110.    }
  111.  
  112.    public boolean canRead() {
  113.       SecurityManager var1 = System.getSecurityManager();
  114.       if (var1 != null) {
  115.          var1.checkRead(this.path);
  116.       }
  117.  
  118.       return this.canRead0();
  119.    }
  120.  
  121.    public boolean isFile() {
  122.       SecurityManager var1 = System.getSecurityManager();
  123.       if (var1 != null) {
  124.          var1.checkRead(this.path);
  125.       }
  126.  
  127.       return this.isFile0();
  128.    }
  129.  
  130.    public boolean isDirectory() {
  131.       SecurityManager var1 = System.getSecurityManager();
  132.       if (var1 != null) {
  133.          var1.checkRead(this.path);
  134.       }
  135.  
  136.       return this.isDirectory0();
  137.    }
  138.  
  139.    public native boolean isAbsolute();
  140.  
  141.    public long lastModified() {
  142.       SecurityManager var1 = System.getSecurityManager();
  143.       if (var1 != null) {
  144.          var1.checkRead(this.path);
  145.       }
  146.  
  147.       return this.lastModified0();
  148.    }
  149.  
  150.    public long length() {
  151.       SecurityManager var1 = System.getSecurityManager();
  152.       if (var1 != null) {
  153.          var1.checkRead(this.path);
  154.       }
  155.  
  156.       return this.length0();
  157.    }
  158.  
  159.    public boolean mkdir() {
  160.       SecurityManager var1 = System.getSecurityManager();
  161.       if (var1 != null) {
  162.          var1.checkWrite(this.path);
  163.       }
  164.  
  165.       return this.mkdir0();
  166.    }
  167.  
  168.    public boolean renameTo(File var1) {
  169.       SecurityManager var2 = System.getSecurityManager();
  170.       if (var2 != null) {
  171.          var2.checkWrite(this.path);
  172.          var2.checkWrite(var1.path);
  173.       }
  174.  
  175.       return this.renameTo0(var1);
  176.    }
  177.  
  178.    public boolean mkdirs() {
  179.       if (this.exists()) {
  180.          return false;
  181.       } else if (this.mkdir()) {
  182.          return true;
  183.       } else {
  184.          String var1 = this.getParent();
  185.          return var1 != null && (new File(var1)).mkdirs() && this.mkdir();
  186.       }
  187.    }
  188.  
  189.    public String[] list() {
  190.       SecurityManager var1 = System.getSecurityManager();
  191.       if (var1 != null) {
  192.          var1.checkRead(this.path);
  193.       }
  194.  
  195.       return this.list0();
  196.    }
  197.  
  198.    public String[] list(FilenameFilter var1) {
  199.       String[] var2 = this.list();
  200.       if (var2 == null) {
  201.          return null;
  202.       } else {
  203.          Vector var3 = new Vector();
  204.  
  205.          for(int var4 = 0; var4 < var2.length; ++var4) {
  206.             if (var1 == null || var1.accept(this, var2[var4])) {
  207.                var3.addElement(var2[var4]);
  208.             }
  209.          }
  210.  
  211.          String[] var5 = new String[var3.size()];
  212.          var3.copyInto(var5);
  213.          return var5;
  214.       }
  215.    }
  216.  
  217.    public boolean delete() {
  218.       SecurityManager var1 = System.getSecurityManager();
  219.       if (var1 != null) {
  220.          var1.checkDelete(this.path);
  221.       }
  222.  
  223.       SecurityManager.enablePrivilege("UniversalFileRead");
  224.       return this.isDirectory() ? this.rmdir0() : this.delete0();
  225.    }
  226.  
  227.    public int hashCode() {
  228.       return this.path.hashCode() ^ 1234321;
  229.    }
  230.  
  231.    public boolean equals(Object var1) {
  232.       return var1 != null && var1 instanceof File ? this.path.equals(((File)var1).path) : false;
  233.    }
  234.  
  235.    public String toString() {
  236.       return this.getPath();
  237.    }
  238.  
  239.    private synchronized void writeObject(ObjectOutputStream var1) throws IOException {
  240.       var1.defaultWriteObject();
  241.       var1.writeChar(separatorChar);
  242.    }
  243.  
  244.    private synchronized void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  245.       var1.defaultReadObject();
  246.       char var2 = var1.readChar();
  247.       if (var2 != separatorChar) {
  248.          this.path = this.path.replace(var2, separatorChar);
  249.       }
  250.  
  251.    }
  252.  
  253.    public long lastAccessed() {
  254.       System.getSecurityManager().checkRead(this.path);
  255.       return this.lastAccessed0();
  256.    }
  257.  
  258.    public long lastStatusChange() {
  259.       System.getSecurityManager().checkRead(this.path);
  260.       return this.lastStatusChange0();
  261.    }
  262.  
  263.    public boolean isLink() {
  264.       System.getSecurityManager().checkRead(this.path);
  265.       return this.isLink0();
  266.    }
  267.  
  268.    private native long lastAccessed0();
  269.  
  270.    private native long lastStatusChange0();
  271.  
  272.    private native boolean isLink0();
  273.  
  274.    static {
  275.       separatorChar = separator.charAt(0);
  276.       pathSeparator = System.getProperty("path.separator");
  277.       pathSeparatorChar = pathSeparator.charAt(0);
  278.    }
  279. }
  280.